package ve.edu.ucla.laboratorio.dals.modelo.prueba;

import java.util.Date;
import java.util.List;

import ve.edu.ucla.laboratorio.dals.modelo.Autenticacion;
import ve.edu.ucla.laboratorio.dals.modelo.EstadoAutenticacion;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioUsuarios;
import ve.edu.ucla.laboratorio.dals.modelo.Usuario;

public class EjemploRepositorioUsuarios implements RepositorioUsuarios {
	private final List<EjemploUsuario> usuarios;
	
	public EjemploRepositorioUsuarios(List<EjemploUsuario> usuarios) {
		this.usuarios = usuarios;
	}

	public Autenticacion autenticar(String nombre, String claveCodificada) {
		for (EjemploUsuario ejemplo : usuarios) {
			if (ejemplo.getNombreUsuario().equals(nombre) && ejemplo.getClaveCodificada().equals(claveCodificada)) {
				Date fechaCaducacion = new Date();
				fechaCaducacion.setYear(fechaCaducacion.getYear() + 2);
				return Autenticacion.exitoso(ejemplo.getNombreUsuario(), ejemplo.getPermisos(), fechaCaducacion);
			}
		}
		
		return Autenticacion.error(EstadoAutenticacion.NOMBRE_CLAVE_INCORRECTA);
	}

	public Usuario consultarUsuario(String usuarioId) {
		for (EjemploUsuario usuario : usuarios)
			if (usuario.getNombreUsuario().equals(usuarioId))
				return usuario;
		return null;
	}

}
